<!DOCTYPE html>
<html>
  <head>
    <script src="../../../../../processing.js"></script>
    <link rel="stylesheet" href="../../../../style.css" />
  </head> 

  <body> 
    <h1><a href="http://asalga.wordpress.com">Andor Salga</a></h1>
    <h2>Blinds demo</h2>

    <p>This page demonstrates the Pjs rect() function.</p>

    <p>
      <canvas datasrc="blinds.pjs"> </canvas>
    </p>

    <pre><b>// Demo by Andor Salga</b>
import processing.opengl.*;

int frame = 0;
float[] list = new float[20];
float g = 0;
float w = 10;

// larger is higher
float windSpeed = 1;
float windStr = 190;
float varyance = 1.5;

void setup(){
  size(400,400, OPENGL);
  r();
}

void r(){
  for(int i=0; i < 20; i++){
    list[i] += random(-varyance, varyance);
  }
}

void draw(){

background(240);
translate(10, 20, 0);

pushMatrix();
fill(140,120,0);

translate(50,90,-90);
scale(4,4,4);
rotateX(-0.4);

box(20,1,20);// seat

pushMatrix();
translate(8,10,8);
box(2,20,2); 
popMatrix();

pushMatrix();
translate(-8,10,-8);
box(2,20,2); 
popMatrix();

pushMatrix();
translate(8,10,-8);
box(2,20,2); 
popMatrix();

pushMatrix();
translate(-8,10,8);
box(2,20,2); 
popMatrix();

popMatrix();

pushMatrix();
translate(50,20,-40);
fill(0,0,255,30);

popMatrix();

pushMatrix();
translate(width/2, 30+height/2, 90);
pointLight(50, 150, 0, 0, 0 ,0);
popMatrix();

stroke(0);
strokeWeight(1);


directionalLight(200,50,0, 0,0, -1);

for(int i = 0; i < 20; i++){
  rotateX(sin(frameCount/50)/windStr);
  pushMatrix();

  int li = (int)list[i];

  rotateX(sin((frameCount + li)/20)/30);
  fill(128,120,128,150);
  rect(i*10, 10, 10, 190);
  popMatrix();
}

if(frame%2000 == 0){
  r();
  g+=random(-1,1);
  w +=random(-2,2);
}

if(frame%300 == 0){
  windStr += random(-1,1);
}
}</pre>

  </body>
</html>
